import { axiosInstance } from 'src/boot/axios'
import CommonConfig from 'src/assets/js/config'
import qs from 'qs'

const qsConfig = {
  arrayFormat: 'repeat',
  skipNulls: true,
  format: 'RFC3986'
}
const machinestatusUrl = CommonConfig.machinestatusUrl + '/v1'

/**
 * 盒子的新建文件
 * boxId 盒子ID
 * content 文件内容
 * fileName 文件名称
 * storagePath 上传路径
 * toCnc 0：内部(box)，1：外部(cnc)
 * **/
export function machineNewFile (params) {
  const newUrl = machinestatusUrl + '/create_box_file'

  return axiosInstance.post(newUrl, params).then((res) => {
    return Promise.resolve(res)
  })
}

/**
 * 本地到盒子的文件上传
 * boxId 盒子ID
 * file 文件
 * fileName 文件名
 * storagePath 目标路径
 * toCnc 0：内部(box)，1：外部(cnc)
 * **/
export function filelocalToMachine (params) {
  const newUrl = machinestatusUrl + '/sent_to_box'

  return axiosInstance.post(newUrl, params).then((res) => {
    return Promise.resolve(res)
  })
}

/**
 * 本地到盒子的文件下载
 * boxId 盒子ID
 * cloudPath 云端地址，不传默认下载到本地
 * file 文件
 * fileName 文件名
 * filePath 文件全路径
 * fromBox 0：内部(cnc)，1：外部(box)
 * **/
export function fileMachineLocal (params) {
  const newUrl = machinestatusUrl + '/get_from_box'

  return axiosInstance.get(newUrl, { params }).then((res) => {
    return Promise.resolve(res)
  })
}

/**
 * 云端到盒子的文件下载
 * boxId 盒子ID
 * cloudPath 云端地址，不传默认下载到本地
 * storagePath 目标路径
 * toCnc 0：内部(box)，1：外部(cnc)
 * **/
export function fileMachineCloud (params) {
  const newUrl = machinestatusUrl + '/get_from_cloud'

  return axiosInstance.post(newUrl, params).then((res) => {
    return Promise.resolve(res)
  })
}

export function getNewBox (deviceIds) {
  const newUrl = 'tpm/v1/boxs_by_deviceIds'
  let reqData = {
    params: {
      deviceIds: deviceIds
    },
    paramsSerializer: function (ids) {
      return qs.stringify(ids, qsConfig)
    }
  }
  return axiosInstance.get(newUrl, reqData).then((res) => {
    return Promise.resolve(res)
  })
}
